The benefits of computer virtualization have been recognized as greatly increasing the computational efficiency and flexibility of a computing hardware platform. For example, computer virtualization allows multiple virtual computing machines to run on a common computing hardware platform. Similar to a physical computing hardware platform, virtual computing machines include storage media, such as virtual hard disks, virtual processors, and other system components associated with a computing environment. For example, a virtual hard disk can store the operating system, data, and application files for a virtual machine.
Server-based computing allows a networked client system, remotely disposed with respect to a server, to access computing resources on the server. For example, a client can use a remote desktop protocol such as RDP or VNC to access a desktop remotely and transmit user input such as keyboard or mouse input to the remote system. Server-based computing facilitates centralized management of computing resources. However, a drawback is a less than optimum computing experience. For example, graphic intensive applications and local devices, such as USB devices, printers and the like, may not operate as desired. Additionally, the user must stay connected to the network to gain access to the user's desktop stored on the server.
As an alternative to server-based computing, client-side computing allows the user to be located away from an enterprise network and in offline mode, i.e., not connected to a network or the Internet. From an enterprise management standpoint, however, client-side computing leads to undesirable inefficiencies when it comes to such tasks as updating operating systems and applications, enforcing security, licensing compliance, locking information, forcing adherence to various policies, and data backup.